草庐IT

c++ - NULL == 指针

全部标签

c# - 检查 int、string、double 等任何类型的 null 或 empty 的通用方法

我正在尝试让它工作,但不知何故它超出了我的控制范围......我希望能够检查null或empty到我分配的任何类型。例如:inti=0;stringmystring="";varreult=CheckNullOrEmpty(10)//passingintvarresult1=CheckNullOrEmpty(mystring)//passingstringpublicboolCheckNullOrEmpty(Tvalue){//checkfornulloremptyforstrings//checkfornulli.e.0forint}有人可以帮我解决这个问题吗?我想了解泛型如何适用于

c# - 检查 : null vs default()?

我想检查引用类型是否为空。我看到两个选项(_settings是引用类型FooType):if(_settings==default(FooType)){...}和if(_settings==null){...}这两者的表现有何不同? 最佳答案 没有区别。任何引用类型的默认值为null。default关键字的MSDNC#引用页:https://msdn.microsoft.com/en-us/library/25tdedf5.aspx. 关于c#-检查:nullvsdefault()?,我

c# - using 会在 null 上工作吗?

如果资源没有实现IDisposable,下面的代码可以工作吗?Tresource=newT();using(resourceasIDisposable){...} 最佳答案 是的。using语句检查它是否被赋予null并避免尝试调用Dispose如果是。来自C#3规范的第8.13节:Ausingstatementistranslatedintothreeparts:acquisition,usage,anddisposal.Usageoftheresourceisimplicitlyenclosedinatrystatementth

c# - 在C#中将 'var'的值初始化为null

这个问题在这里已经有了答案:Howtoinitializevar?(11个答案)关闭8年前。我想给一个变量赋初值null,并在下一个if-elseblock中赋值,但是编译器报错,Implicitly-typedlocalvariablesmustbeinitialized.我怎样才能做到这一点?

c# - "this"可以在 C# 虚拟方法中为 null 吗?其余的实例方法会发生什么?

我很好奇是否有办法让C#中的虚方法中的this为null。我认为这是不可能的。我在现有代码中看到了这一点,在代码审查期间,我想100%肯定会对其删除发表评论,但我希望得到社区的一些确认和更多背景信息。this!=null在任何非静态/实例方法中都是这样吗?否则它会是一个空指针异常吗?我在考虑扩展方法以及我可能不熟悉的来自多年Java的任何C#功能。 最佳答案 这不是标准的C#,而是来自Lasse的答案和Jon,通过一些IL-fiddling,您可以进行非虚拟调用(对虚拟或非虚拟方法)传递空this:usingSystem;using

c# - 仅当字符串不为 null 或空时附加逗号

我正在用C#创建简单的网络表单。在这里,我通过连接得到了完整的地址,效果很好。但是假设我没有address2、city等,那么我想跳过在每个字符串末尾添加逗号(例如,如果address1为null或空)。stringaddress1="Address1";stringaddress2="Address2";stringcity="City";stringcountry="Country";stringpostalCode="00000";stringfullAddress=?-->address1+","+address2+","+cityandsoon 最

c# - int.TryParse = null 如果不是数字?

如果无法将字符串解析为int,是否有返回null的方法?与:public....,string?categoryID){int.TryParse(categoryID,outcategoryID);获取“无法从‘outstring’转换为‘outint’”怎么办?编辑:由于asp.net的限制不再相关是解决问题的方法/M 最佳答案 首先,为什么要尝试将字符串解析为int并将结果粘贴回字符串?方法签名是boolint.TryParse(string,outint)所以你必须给一个int类型的变量作为第二个参数。这也意味着如果解析失败,

c# - 如何使用 Linq 处理带有 FirstOrDefault 的 NULL 对象属性

我真正的应用程序问题如下所示Employeeempl=newEmployee(397947,"David","Redson",80000);employees.Add(empl);employees.Add(newEmployee(174966,"Alfred","Swanson",50000));employees.Add(newEmployee(848024,"Alima","Bieyrou",40000));employees.Add(newEmployee(number:397462,fName:"Robert",lName:"Nants",salary:30000));str

c# - 使用 "greater than or equals"或仅使用 "greater than"

我记得从C天起我们就被鼓励使用i>-1代替i>=0因为性能。这是否仍然适用于C#.NET世界?在当今的编译器中使用其中一种对性能有何影响?即编译器是否足够聪明,可以为您优化这些?(顺便说一句,尝试在StackOverflow的问题字段中输入问题“use>=or>”,看看会发生什么。) 最佳答案 不,没有与比较运算符相关的性能问题。无论如何,任何好的编译器都会优化这种微不足道的东西。我不确定您从哪里得到使用“i>-1”而不是“i>=0”的建议。在x86体系结构上,使用哪一种都没有区别:两种情况都恰好需要两条指令......一条用于比较

c# - 让图像 ManipulationMode 捕获指针

在我的应用中,用户可以选择一个Image并将其拖到Grid上,以进行操作。我通过处理Grid的PointerEntered事件来做到这一点。在这里,我检测用户是否选择了图像以及用户是否按住鼠标按钮。现在我想将Image放在网格上,并将(仍然按下的)指针传递到我的Image,所以Imagecode>使用自己的ManipulationStarted、ManipulationDelta和ManipulationCompleted事件。这样一来,用户就可以将图像从图像列表中顺畅地拖动到Grid中,而不必松开并单击该元素。我尝试在PointerEntered中从sender释放指针,并使用Cap